1. Field of the Invention
The present invention relates to storage systems, and more particularly, to managing metadata.
2. Background of the Invention
Storage area networks (“SANs”) are commonly used where plural storage devices are made available to various host computing systems. Data in a SAN is typically moved between plural host systems (that include computer systems, servers etc.) and storage systems through various controllers/adapters and switches.
Storage virtualization is desirable in SAN communication. The term storage virtualization as used herein means the process by which a logical (virtual) storage device/system/array appears to a host system as being a physical device (or a local device). Storage virtualization allows data to be stored in different storage arrays and devices, but can be presented to a host system in a comprehensive manner, as if the arrays and storage devices were local to the host system.
SAN-based storage virtualization attempts to provide scalable volume management, data replication, data protection, and data migration services. A common problem encountered when implementing these systems is that of storing and maintaining persistent information (which includes, commands, data and metadata) used by these services. The term persistent information as used herein means information that is saved and is available for future use (for example, in a hard drive, tape drive and others).
Persistent information includes mapping metadata and copy of the data stored by the host system. The term metadata as used throughout this specification includes information that describes data. For example, in file systems, file metadata includes, file name, time of creation and modification, read and write permissions and lists of block addresses at which the file's data is stored. For virtualization, storage metadata includes the mapping tables that link virtual block addresses to logical block addresses of physical storage devices.
Conventional approach makes a single network node (within a distributed network environment) responsible for allocating persistent storage and storing the virtualization metadata. This approach is undesirable for storing metadata that changes dynamically during various operations, for example, snapshots, point-in-time copy, journaling, and mirroring services because the network node responsible for allocating and storing the data becomes a bottleneck for the entire distributed system. Traditional approaches also use independent mechanisms for storing different types for virtualization metadata. For example, the mechanism for allocating and storing snapshot-related metadata differs from the method for allocating and storing dirty region logs for mirroring operations. These methods may in turn differ from the method for allocating and storing journaling data and metadata.
Therefore, there is a need for a method and system for efficiently managing metadata.